perm filename SBRHY.F4[12,LCS] blob
sn#023711 filedate 1974-03-03 generic text, type T, neo UTF8
00100 C THIS SUBROUTINE SELECTS FROM 5 TWO-BEAT RHYTHMIC CELLS
00200 SUBROUTINE SUBR
00300 COMMON /INS/ INST(27),BG(60)
00400 COMMON P(30),INUM,IPAR,CNT(27),BT,PL(48),IREST,DF
00500
00600 DIMENSION RH(16),J(6),RH2(16),J2(6)
00700 DATA J/1, 3, 7, 10,15,17/, RH/1.,1., .75,.25,.5,.5,
00800 1 .5,1.,.5, .333,.334,.333,.75,.25, 1.5,.5/
00900 1, J2/1, 4, 5, 7, 9,17/, RH2/.666,.667,.667, 2.,
01000 1 1.,1., 1.5,.5, 8*.25/
01100 C THE J ARRAY HOLDS POINTERS TO BEG. OF RHYTH CELLS
01200 C RH HOLDS THE RHYTHMIC REAL-TIME VALUES.
01300
01400
01500
01600 IF(CNT(1).NE.1.OR.INUM.NE.1.OR.IPAR.NE.2)GO TO 1
01650 IF(IPAR.NE.2)GO TO 1
01700 IA=0
01800 C IA WILL BE USED TO AVOID REPEATED NOTES
01900 IA2=0
02000 2 L=RAND(1.0,5.999)
02100 C PICKS A RHYTHMIC CELL AT RANDOM
02200 22 L2=RAND(1.0,5.999)
02300 IF(L2.NE.5.AND.(L.EQ.1.OR.L.EQ.3.OR.L.EQ.5))GO TO 22
02400 M=J(L+1)
02500 K=J(L)
02600 C K AND M ARE POINTERS TO BEG. AND 1 PAST THE END OF RHYTH CELL
02700 M2=J2(L2+1)
02800 K2=J2(L2)
02900 1 IF(INUM.EQ.1)GO TO 10
03000 C JUMP FOR INST #1
03100 IF(IPAR.NE.2)GO TO 3
03200 P(2)=RH2(K2)
03400 K2=K2+1
03500 C UPDATE THE COUNTER
03600 RETURN
03900 10 IF(IPAR.NE.2)GO TO 33
03910 IF(K.EQ.M)GO TO 2
03955 C GO BACK IF A CELL IS COMPLETE
04000 P(2)=RH(K)
04200 K=K+1
04300 C UPDATE THE COUNTER
04400 RETURN
04500
04550 3 N=P(3)
04560 C NOTE NUMS. MUST BE PUT IN INTEGER FORM FOR COMPARISON.
04600 IF(N.EQ.IA2)N=N+L2
04700 IF(N.NE.A)GO TO 5
04750 N=N+L
04775 GO TO 3
04800 5 IA2=N
04850 P(3)=N
04900 RETURN
05000
05050 33 N=P(3)
05100 IF(N.EQ.IA)N=N+L
05200 IF(N.NE.IA2)GO TO 55
05250 N=N+L2
05275 GO TO 3
05300 55 IA=N
05350 P(3)=N
05400 RETURN
05500 END
06000 QQQ
06100 BRIT ALL 0 20.2; THE LAST NOTE WILL BEGIN AT TIME 20"
06200 P2 ALL SUBN; ALL RHYTH IS SET IN THE SUBROUTINE
06300 P3 MO/10 C2,C3 C5,A5/10 C5,A5 C2,C3*;
06400 P4 ALL 1 200, 1100;
06500 P5 ALL F1/P6 ALL SUBN/P7 ALL F4/P8 F5;
06600 END;
06700 CLAR /P3 REP/END;
06800 BRIT 19.9/P2 2/END; FOR LAST NOTE'S RHYTH.
06900 CLAR 19.9/P2 2/END; FOR LAST NOTE'S RHYTH.
07000 RUN;